﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using Computer_Manager.BUS;
using Computer_Manager.DTO;

namespace Computer_Manager.GUI
{
    public partial class frmAddProduct : DevExpress.XtraEditors.XtraForm
    {
        DTO_product dto_pro = new DTO_product();
        DTO_categories dto_cate = new DTO_categories();
        BUS_product bus_pro = new BUS_product();
        BUS_categories bus_cate = new BUS_categories();
        frmProduct obj = (frmProduct)Application.OpenForms["frmProduct"];
        public frmAddProduct()
        {
            InitializeComponent();
        }

        private void frmAddProduct_Load(object sender, EventArgs e)
        {
            dto_cate.parent_id = 0;
            cmbCategories.DataSource = bus_cate.GetByParentId(dto_cate);
            cmbCategories.DisplayMember = "name_cat";
            cmbCategories.ValueMember = "id_cat";
            cmbCategories.SelectedIndex = -1;
        }

        private void cmbCategories_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                dto_cate.parent_id = int.Parse(cmbCategories.SelectedValue.ToString());
                cmbProduct.DataSource = bus_cate.GetByParentId(dto_cate);
                cmbProduct.DisplayMember = "name_cat";
                cmbProduct.ValueMember = "id_cat";
                cmbProduct.SelectedIndex = -1;
            }
            catch (Exception){}
        }

        private void btnAddPro_Click(object sender, EventArgs e)
        {
            if (txtCode.Text == "" || txtName.Text == "" || txtPriceIn.Text == "" || txtAmountIn.Text == "" || txtPriceOut.Text == "" || txtDate.Text == "" || cmbProduct.SelectedIndex == -1 || cmbCategories.SelectedIndex == -1)
            {

                if (txtCode.Text == "")
                {
                    txtCode.Properties.NullValuePrompt = "Vui lòng nhập mã sản phẩm";
                    txtCode.BackColor = Color.NavajoWhite;
                }
                else
                {
                    txtCode.Properties.NullValuePrompt = "";
                    txtCode.BackColor = Color.White;
                }
                /////////
                if (txtName.Text == "")
                {
                    txtName.Properties.NullValuePrompt = "Vui lòng nhập tên sản phẩm";
                    txtName.BackColor = Color.NavajoWhite;
                }
                else
                {
                    txtName.Properties.NullValuePrompt = "";
                    txtName.BackColor = Color.White;
                }
                ////////
                if (txtPriceIn.Text == "")
                {
                    txtPriceIn.Properties.NullValuePrompt = "Vui lòng nhập giá nhập vào của sản phẩm";
                    txtPriceIn.BackColor = Color.NavajoWhite;
                }
                else
                {
                    txtPriceIn.Properties.NullValuePrompt = "";
                    txtPriceIn.BackColor = Color.White;
                }
                if (txtAmountIn.Text == "")
                {
                    txtAmountIn.Properties.NullValuePrompt = "Vui lòng nhập số lượng nhập";
                    txtAmountIn.BackColor = Color.NavajoWhite;
                }
                else
                {
                    txtAmountIn.Properties.NullValuePrompt = "";
                    txtAmountIn.BackColor = Color.White;
                }
                if (txtPriceOut.Text == "")
                {
                    txtPriceOut.Properties.NullValuePrompt = "Vui lòng nhập giá nhập vào của sản phẩm";
                    txtPriceOut.BackColor = Color.NavajoWhite;
                }
                else
                {
                    txtPriceOut.Properties.NullValuePrompt = "";
                    txtPriceOut.BackColor = Color.White;
                }
                if (txtDate.Text == "")
                {
                    txtDate.Properties.NullValuePrompt = "Vui lòng nhập giá nhập vào của sản phẩm";
                    txtDate.BackColor = Color.NavajoWhite;
                }
                else
                {
                    txtDate.Properties.NullValuePrompt = "";
                    txtDate.BackColor = Color.White;
                }
                if (cmbCategories.SelectedIndex == -1)
                {
                    cmbCategories.Text = "Vui lòng chọn danh mục";
                    cmbCategories.BackColor = Color.NavajoWhite;
                }
                else
                {
                    cmbCategories.Text = "";
                    cmbCategories.BackColor = Color.White;
                }
                if (cmbProduct.SelectedIndex == -1)
                {
                    cmbProduct.Text = "Vui lòng chọn loại sản phẩm";
                    cmbProduct.BackColor = Color.NavajoWhite;
                }
                else
                {
                    cmbProduct.Text = "";
                    cmbProduct.BackColor = Color.White;
                }
                MessageBox.Show("Bạn chưa nhập đầy đủ thông tin");
            }
            else
            {
                dto_pro.codes_pro = txtCode.Text;
                dto_pro.name_pro = txtName.Text;
                dto_pro.price_in = txtPriceIn.Text;
                dto_pro.amount_in = int.Parse(txtAmountIn.Text);
                dto_pro.price_out = txtPriceOut.Text;
                DateTime ngay = new DateTime();
                ngay = Convert.ToDateTime(txtDate.Text);
                dto_pro.date_in = ngay;
                dto_pro.id_cat = int.Parse(cmbProduct.SelectedValue.ToString());
                try
                {
                    bus_pro.product_insert(dto_pro);
                    XtraMessageBox.Show("Thêm thành công");
                    this.Dispose();
                    this.Close();
                    obj.loaddata();
                }
                catch (Exception){}
            }
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            txtCode.Text = txtName.Text = txtDate.Text = txtPriceIn.Text = txtPriceOut.Text = "";
            txtAmountIn.Text = "1";
        }

        private void frmAddProduct_FormClosed(object sender, FormClosedEventArgs e)
        {
            this.Dispose();
        }

    }
}